# RUN: llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize32,-wavefrontsize64 -disassemble -show-encoding < %s | FileCheck -check-prefixes=GFX10,W32 %s
# RUN: llvm-mc -arch=amdgcn -mcpu=gfx1010 -mattr=-wavefrontsize32,+wavefrontsize64 -disassemble -show-encoding < %s | FileCheck -check-prefixes=GFX10,W64 %s

# GFX10: v_add_f32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x06,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x06,0x01,0x88,0xc6,0xfa

# GFX10: v_sub_f32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x08,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x08,0x01,0x88,0xc6,0xfa

# GFX10: v_subrev_f32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x0a,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x0a,0x01,0x88,0xc6,0xfa

# GFX10: v_mul_legacy_f32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x0e,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x0e,0x01,0x88,0xc6,0xfa

# GFX10: v_mul_f32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x10,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x10,0x01,0x88,0xc6,0xfa

# GFX10: v_mul_i32_i24_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x12,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x12,0x01,0x88,0xc6,0xfa

# GFX10: v_mul_hi_i32_i24_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x14,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x14,0x01,0x88,0xc6,0xfa

# GFX10: v_mul_u32_u24_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x16,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x16,0x01,0x88,0xc6,0xfa

# GFX10: v_mul_hi_u32_u24_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x18,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x18,0x01,0x88,0xc6,0xfa

# GFX10: v_min_f32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x1e,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x1e,0x01,0x88,0xc6,0xfa

# GFX10: v_max_f32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x20,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x20,0x01,0x88,0xc6,0xfa

# GFX10: v_min_i32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x22,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x22,0x01,0x88,0xc6,0xfa

# GFX10: v_max_i32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x24,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x24,0x01,0x88,0xc6,0xfa

# GFX10: v_min_u32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x26,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x26,0x01,0x88,0xc6,0xfa

# GFX10: v_max_u32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x28,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x28,0x01,0x88,0xc6,0xfa

# GFX10: v_lshrrev_b32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x2c,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x2c,0x01,0x88,0xc6,0xfa

# GFX10: v_ashrrev_i32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x30,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x30,0x01,0x88,0xc6,0xfa

# GFX10: v_lshlrev_b32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x34,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x34,0x01,0x88,0xc6,0xfa

# GFX10: v_and_b32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x36,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x36,0x01,0x88,0xc6,0xfa

# GFX10: v_or_b32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x38,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x38,0x01,0x88,0xc6,0xfa

# GFX10: v_xor_b32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x3a,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x3a,0x01,0x88,0xc6,0xfa

# GFX10: v_xnor_b32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x3c,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x3c,0x01,0x88,0xc6,0xfa

# GFX10: v_add_f16_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x64,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x64,0x01,0x88,0xc6,0xfa

# GFX10: v_sub_f16_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x66,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x66,0x01,0x88,0xc6,0xfa

# GFX10: v_subrev_f16_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x68,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x68,0x01,0x88,0xc6,0xfa

# GFX10: v_mul_f16_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x6a,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x6a,0x01,0x88,0xc6,0xfa

# GFX10: v_max_f16_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x72,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x72,0x01,0x88,0xc6,0xfa

# GFX10: v_min_f16_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x74,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x74,0x01,0x88,0xc6,0xfa

# GFX10: v_ldexp_f16_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] ; encoding: [0xe9,0x04,0x0a,0x76,0x01,0x88,0xc6,0xfa]
0xe9,0x04,0x0a,0x76,0x01,0x88,0xc6,0xfa

# GFX10: v_add_f32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x06,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x06,0x01,0x88,0xc6,0xfa

# GFX10: v_sub_f32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x08,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x08,0x01,0x88,0xc6,0xfa

# GFX10: v_subrev_f32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x0a,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x0a,0x01,0x88,0xc6,0xfa

# GFX10: v_mul_legacy_f32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x0e,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x0e,0x01,0x88,0xc6,0xfa

# GFX10: v_mul_f32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x10,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x10,0x01,0x88,0xc6,0xfa

# GFX10: v_mul_i32_i24_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x12,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x12,0x01,0x88,0xc6,0xfa

# GFX10: v_mul_hi_i32_i24_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x14,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x14,0x01,0x88,0xc6,0xfa

# GFX10: v_mul_u32_u24_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x16,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x16,0x01,0x88,0xc6,0xfa

# GFX10: v_mul_hi_u32_u24_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x18,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x18,0x01,0x88,0xc6,0xfa

# GFX10: v_min_f32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x1e,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x1e,0x01,0x88,0xc6,0xfa

# GFX10: v_max_f32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x20,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x20,0x01,0x88,0xc6,0xfa

# GFX10: v_min_i32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x22,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x22,0x01,0x88,0xc6,0xfa

# GFX10: v_max_i32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x24,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x24,0x01,0x88,0xc6,0xfa

# GFX10: v_min_u32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x26,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x26,0x01,0x88,0xc6,0xfa

# GFX10: v_max_u32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x28,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x28,0x01,0x88,0xc6,0xfa

# GFX10: v_lshrrev_b32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x2c,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x2c,0x01,0x88,0xc6,0xfa

# GFX10: v_ashrrev_i32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x30,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x30,0x01,0x88,0xc6,0xfa

# GFX10: v_lshlrev_b32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x34,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x34,0x01,0x88,0xc6,0xfa

# GFX10: v_and_b32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x36,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x36,0x01,0x88,0xc6,0xfa

# GFX10: v_or_b32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x38,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x38,0x01,0x88,0xc6,0xfa

# GFX10: v_xor_b32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x3a,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x3a,0x01,0x88,0xc6,0xfa

# GFX10: v_xnor_b32_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x3c,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x3c,0x01,0x88,0xc6,0xfa

# GFX10: v_add_f16_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x64,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x64,0x01,0x88,0xc6,0xfa

# GFX10: v_sub_f16_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x66,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x66,0x01,0x88,0xc6,0xfa

# GFX10: v_subrev_f16_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x68,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x68,0x01,0x88,0xc6,0xfa

# GFX10: v_mul_f16_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x6a,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x6a,0x01,0x88,0xc6,0xfa

# GFX10: v_max_f16_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x72,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x72,0x01,0x88,0xc6,0xfa

# GFX10: v_min_f16_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x74,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x74,0x01,0x88,0xc6,0xfa

# GFX10: v_ldexp_f16_dpp v5, v1, v2 dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x0a,0x76,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x0a,0x76,0x01,0x88,0xc6,0xfa

# W32: v_add_co_ci_u32_dpp v0, vcc_lo, v0, v0, vcc_lo dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x00,0x00,0x50,0x00,0x77,0x39,0x05]
# W64: v_add_co_ci_u32_dpp v0, vcc, v0, v0, vcc dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x00,0x00,0x50,0x00,0x77,0x39,0x05]
0xe9,0x00,0x00,0x50,0x00,0x77,0x39,0x05

# W32: v_add_co_ci_u32_dpp v0, vcc_lo, v0, v0, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x00,0x00,0x50,0x00,0x77,0x39,0x05]
# W64: v_add_co_ci_u32_dpp v0, vcc, v0, v0, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x00,0x00,0x50,0x00,0x77,0x39,0x05]
0xea,0x00,0x00,0x50,0x00,0x77,0x39,0x05

# W32: v_sub_co_ci_u32_dpp v0, vcc_lo, v0, v0, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x00,0x00,0x52,0x00,0x77,0x39,0x05]
# W64: v_sub_co_ci_u32_dpp v0, vcc, v0, v0, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x00,0x00,0x52,0x00,0x77,0x39,0x05]
0xea,0x00,0x00,0x52,0x00,0x77,0x39,0x05

# W32: v_subrev_co_ci_u32_dpp v0, vcc_lo, v0, v0, vcc_lo dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x00,0x00,0x54,0x00,0x77,0x39,0x05]
# W64: v_subrev_co_ci_u32_dpp v0, vcc, v0, v0, vcc dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x00,0x00,0x54,0x00,0x77,0x39,0x05]
0xea,0x00,0x00,0x54,0x00,0x77,0x39,0x05

# GFX10: v_add_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x4a,0x01,0x77,0x39,0x05]
0xe9,0x04,0x0a,0x4a,0x01,0x77,0x39,0x05

# GFX10: v_add_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x4a,0x01,0x77,0x39,0x05]
0xea,0x04,0x0a,0x4a,0x01,0x77,0x39,0x05

# GFX10: v_sub_nc_u32_dpp v5, v1, v255 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0xfe,0x0b,0x4c,0x01,0x77,0x39,0x05]
0xe9,0xfe,0x0b,0x4c,0x01,0x77,0x39,0x05

# GFX10: v_sub_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x4c,0x01,0x77,0x39,0x05]
0xea,0x04,0x0a,0x4c,0x01,0x77,0x39,0x05

# GFX10: v_subrev_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x4e,0x01,0x77,0x39,0x05]
0xe9,0x04,0x0a,0x4e,0x01,0x77,0x39,0x05

# GFX10: v_subrev_nc_u32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x4e,0x01,0x77,0x39,0x05]
0xea,0x04,0x0a,0x4e,0x01,0x77,0x39,0x05

# GFX10: v_mac_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x0a,0x3e,0x01,0x77,0x39,0x05]
0xe9,0x04,0x0a,0x3e,0x01,0x77,0x39,0x05

# GFX10: v_mac_f32_dpp v5, v1, v2 dpp8:[7,6,5,4,3,2,1,0] fi:1 ; encoding: [0xea,0x04,0x0a,0x3e,0x01,0x77,0x39,0x05]
0xea,0x04,0x0a,0x3e,0x01,0x77,0x39,0x05

# W32: v_cndmask_b32_dpp v0, v1, v2, vcc_lo  dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x00,0x02,0x01,0x77,0x39,0x05]
# W64: v_cndmask_b32_dpp v0, v1, v2, vcc  dpp8:[7,6,5,4,3,2,1,0] ; encoding: [0xe9,0x04,0x00,0x02,0x01,0x77,0x39,0x05]
0xe9,0x04,0x00,0x02,0x01,0x77,0x39,0x05

# W32: v_cndmask_b32_dpp v0, v1, v2, vcc_lo  dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x00,0x02,0x01,0x88,0xc6,0xfa]
# W64: v_cndmask_b32_dpp v0, v1, v2, vcc  dpp8:[0,1,2,3,4,5,6,7] fi:1 ; encoding: [0xea,0x04,0x00,0x02,0x01,0x88,0xc6,0xfa]
0xea,0x04,0x00,0x02,0x01,0x88,0xc6,0xfa
